package org.example.analysis.model;

import lombok.Data;
import lombok.experimental.Accessors;

import java.util.Date;

/**
 * 方法复杂度信息
 */
@Data
@Accessors(chain = true)
public class MethodComplexity {
    /**
     * 主键ID
     */
    private Long id;
    
    /**
     * 项目名称
     */
    private String projectName;
    
    /**
     * 类名
     */
    private String className;
    
    /**
     * 方法名
     */
    private String methodName;
    
    /**
     * 代码行数
     */
    private Integer linesOfCode;
    
    /**
     * 圈复杂度（条件分支数）
     */
    private Integer cyclomaticComplexity;
    
    /**
     * 参数数量
     */
    private Integer parameterCount;
    
    /**
     * 局部变量数量
     */
    private Integer localVariableCount;
    
    /**
     * 方法调用数量
     */
    private Integer methodCallCount;
    
    /**
     * 嵌套深度
     */
    private Integer nestingDepth;
    
    /**
     * 异常处理数量
     */
    private Integer exceptionHandlerCount;
    
    /**
     * SQL操作数量
     */
    private Integer sqlOperationCount;
    
    /**
     * 复杂度等级（LOW、MEDIUM、HIGH、VERY_HIGH）
     */
    private ComplexityLevel level;
    
    /**
     * 复杂度得分
     */
    private Integer complexityScore;
    
    /**
     * 建议改进措施
     */
    private String improvementSuggestions;
    
    /**
     * 最后分析时间
     */
    private Date lastAnalysisTime;
    
    /**
     * 最后修改时间
     */
    private Date lastModifiedTime;
    
    /**
     * 最后修改人
     */
    private String lastModifiedBy;
    
    /**
     * 创建时间
     */
    private Date createdAt;
    
    /**
     * 是否可刷新
     */
    private Boolean refreshable = true;
} 